package caser.cairngorm.services.async
{
	import com.adobe.cairngorm.control.CairngormEvent;
	
	import flash.events.Event;
	
	import mx.rpc.AsyncToken;
	import mx.rpc.events.FaultEvent;
	import mx.rpc.events.ResultEvent;
	
	public interface IServiceMethodCallContainer
	{
		function getService(): Object;
		function callServiceMethod(event:CairngormEvent): AsyncToken;

		function beforeExecute(event: CairngormEvent): Boolean;
		function afterExecute(event: CairngormEvent): void;

		function resultHandler(cairngomnEvent:CairngormEvent, event: ResultEvent): void;
		function faultHandler(cairngomnEvent:CairngormEvent, event: FaultEvent): void;
		function afterResponse(cairngomnEvent:CairngormEvent, event: Event): void;
	}
}